package cool.taomu.toolkit.utils

import java.nio.ByteBuffer
import java.nio.charset.Charset
import java.nio.charset.StandardCharsets

class ByteBufferUtils {

    def static toString(ByteBuffer buffer, String charset) {
        return toString(buffer, Charset.forName(charset))
    }

    def static toString(ByteBuffer buffer, Charset charset) {
        // 保存当前 position
        var position = buffer.position();
        var limit = buffer.limit();

        // 创建字节数组大小为当前 buffer 的剩余字节数
        var bytes = newByteArrayOfSize(buffer.remaining());
        buffer.get(bytes); // 将 buffer 中的数据读入字节数组
        // 恢复 buffer 的 position 和 limit
        buffer.position(position);
        buffer.limit(limit);

        return new String(bytes, charset);
    }

    def static toByteBuffer(String body) {
        return ByteBuffer.wrap(body.getBytes(StandardCharsets.UTF_8));
    }

}
